package com.zaicheng.cloud;

import com.zaicheng.cloud.netty.RpcRequest;
import com.zaicheng.cloud.netty.RpcResponse;
import com.zaicheng.cloud.netty.protocol.Response;
import com.zaicheng.cloud.remotecall.Target;

import java.lang.reflect.Method;
import java.util.concurrent.ExecutionException;

/**
 @author zaicheng
 @version 1.0
 @date 2022-04-19
 @email zzc15847256473@163.com
 */

public interface Client {

     RpcResponse  execute(RpcRequest request, RpcRequest.Options options);

     <T>T execute(Target target, Method method, Object... param) throws ExecutionException, InterruptedException;
}
